#include "..//GKoSonTools/TW_LED/basetwinkle.h"


//对节点的实例化 也就是赋值
void twinkle_set(void *pp ,uint8_t enable,uint8_t OpenCnt , uint32_t OpenTime ,uint32_t CloseTime,todofunc funopen,todofunc funclose)
{
	twinkleType* p=(twinkleType *)pp;
	if(p==NULL)return;
	p->setcnt = OpenCnt;
	p->realCnt = 0;
	p->RTime = 0;
	p->ATime = OpenTime;
	p->BTime = CloseTime;
	p->funA = funopen;
	p->funB = funclose;   
	p->openFlag = enable;	
}


//周期执行函数
void twinkle_timer_isr( void *pp )
{
		twinkleType* p=(twinkleType *)pp;
		if(p==NULL) return;
    if(p->openFlag == 1)
    {
        if( p->RTime ++ < p->ATime) 
        {
            p->funA() ;
        }
        else//隐藏条件 这是【A B之间的时候】
        {
            p->funB() ;
        }
				
        if( p->RTime  >  p->ATime+p->BTime)
        {
            p->RTime = 0;

						if( ++p->realCnt >= p->setcnt)
						{
							p->openFlag = 0;
						}

        }
    }    
}
